package src.controller;

import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.FileChooser;
import javafx.stage.Stage;

import java.io.File;

public class touxiang extends Application {

    @FXML
    private Button selectFileButton; // 选择檔案按钮
    @FXML
    private Button cancelButton;     // 取消按钮
    @FXML
    private Button changeButton;     // 更改按钮
    @FXML
    private Label fileNameLabel;     // 文件名显示标签

    private File selectedFile;

    @Override
    public void start(Stage primaryStage) throws Exception {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("../view/touxiang.fxml"));
        Parent root = loader.load();

        primaryStage.setTitle("重置头像");
        primaryStage.setScene(new Scene(root, 600, 355));
        primaryStage.setResizable(false);
        primaryStage.show();
    }

    // 初始化方法 - FXML加载完成后自动调用
    @FXML
    private void initialize() {
        // 为选择檔案按钮添加点击事件
        selectFileButton.setOnAction(event -> {
            handleSelectFile();
        });

        // 为取消按钮添加点击事件
        cancelButton.setOnAction(event -> {
            handleCancel();
        });

        // 为更改按钮添加点击事件
        changeButton.setOnAction(event -> {
            handleChange();
        });
    }

    // 处理选择文件
    private void handleSelectFile() {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("选择头像图片");

        // 设置文件过滤器
        FileChooser.ExtensionFilter imageFilter = new FileChooser.ExtensionFilter(
                "图片文件", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.bmp");
        fileChooser.getExtensionFilters().add(imageFilter);

        selectedFile = fileChooser.showOpenDialog(selectFileButton.getScene().getWindow());

        if (selectedFile != null) {
            fileNameLabel.setText("已选择: " + selectedFile.getName());
        } else {
            fileNameLabel.setText("未選擇任何檔案");
        }
    }

    // 处理取消操作
    private void handleCancel() {
        Stage stage = (Stage) cancelButton.getScene().getWindow();
        stage.close();
    }

    // 处理更改操作
    private void handleChange() {
        if (selectedFile == null) {
            // 显示警告提示
            Alert alert = new Alert(Alert.AlertType.WARNING);
            alert.setTitle("警告");
            alert.setHeaderText(null);
            alert.setContentText("请先选择头像图片文件");
            alert.showAndWait();
            return;
        }

        // 这里可以添加实际的头像更改逻辑
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setTitle("成功");
        alert.setHeaderText(null);
        alert.setContentText("头像更改成功！");
        alert.showAndWait();

        // 重置选择
        selectedFile = null;
        fileNameLabel.setText("未選擇任何檔案");
    }

    public static void main(String[] args) {
        launch(args);
    }
}